package com.one.group.service;

import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.one.group.model.dto.AdvertData;
import com.one.group.model.dto.AdvertUpdateDto;
import com.one.group.model.vo.AdvertListVo;
import io.netty.util.internal.ThrowableUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Author wanbo
 * @Date 2025/10/27 21:54
 */
@Service
@Slf4j
public class AdvertMcpService {

    @DubboReference
    private AdvertService advertService;

    @Tool(description = "查询广告信息，可以根据用户具体的需求返回特定的部分或者一个广告信息，例如：当用户需要最新的广告的时候就只返回最新的那条广告信息。如果想要返回所有广告也可以直接返回所有广告信息。")
    public AdvertListVo findAdvertInfo(@RequestParam String cellId) {
        if (StrUtil.isEmpty(cellId)){
            throw new RuntimeException("小区ID不能为空");
        }
        return advertService.findAdvertListByCellId(cellId);
    }

    @Tool(description = "给广告位信息添加广告，例如：当用户需要购买了这个广告位的时候就可以对这个广告位信息广告设置，即修改name名称")
    public void insertAdvertInfo(@RequestBody AdvertUpdateDto advertUpdateDto) {
        if (ObjectUtil.isEmpty(advertUpdateDto)){
            throw new RuntimeException("参数不能为空");
        }
        advertService.updateAdvert(advertUpdateDto);
    }

}
